The application is a continuation of U.S. patent application Ser. No. 09/525,350 filed Mar. 15, 2000, now U.S. Pat. No. 6,338,082, by Schneider, entitled xe2x80x9cMethod, product, and apparatus for requesting a network resourcexe2x80x9d, which claims the benefit of U.S. Provisional Application Ser. No. 60/175,825 filed Jan. 13, 2000, by Schneider, now abandoned, U.S. Provisional Application Ser. No. 60/160,125 filed Oct. 18, 1999, by Schneider, now abandoned, U.S. Provisional Application Ser. No. 60/157,075 filed Oct. 1, 1999, by Schneider, now abandoned, U.S. Provisional Application Ser. No. 60/130,136 filed Apr. 20, 1999, by Schneider, now abandoned, and U.S. Provisional Application Ser. No. 60/125,531 filed Mar. 22, 1999, by Schneider, now abandoned.
1. Field of the Invention
This invention generally relates to navigation services and registration services, and more specifically relates to a method, product, and apparatus for integrating resource location and registration services.
2. Description of the Related Art
The Internet is a vast computer network having many smaller networks that span the world. A network provides a distributed communicating system of computers that are interconnected by various electronic communication links and computer software protocols. Because of the Internet""s distributed and open network architecture, it is possible to transfer data from one computer to any other computer world wide. In 1991, the World-Wide-Web (Web or WWW) revolutionized the way information is managed and distributed through the Internet.
The Web is based on the concept of hypertext and a transfer method known as Hypertext Transfer Protocol (HTTP) which is designed to run primarily over a Transmission Control Protocol/lnternet Protocol (TCP/IP) connection that employs a standard Internet setup. A server computer may provide the data and a client computer may display or process it. TCP may then convert messages into streams of packets at the source, then reassembles them back into messages at the destination. Internet Protocol (IP) handles addressing, seeing to it that packets are routed across multiple nodes and even across multiple networks with multiple standards. HTTP protocol permits client systems connected to the Internet to access independent and geographically scattered server systems also connected to the Internet. Client side browsers, such as Netscape Navigator or Microsoft Internet Explorer, provide efficient graphical user interface (GUI) based client applications that implement the client side portion of the HTTP protocol. One format for information transfer is to create documents using Hypertext Markup Language (HTML). HTML pages are made up of standard text as well as formatting codes that indicate how the page should be displayed. The client side browser reads these codes in order to display the page.
A web page is static when it requires no variables to display information or link to other predetermined web pages. A web page is dynamic when arguments are passed which are either hidden in the web page or entered from the client browser to supply the necessary inputs displayed on the web page. Common Gateway Interface (CGI) is a standard for running external programs from a web server. CGI specifies how to pass arguments to the executing program as part of the HTTP server request. Commonly, a CGI script can take the name and value arguments from an input form of a first web page which is be used as a query to access a database server and generate an HTML web page with customized data results as output that is passed back to the client browser for display.
The Web is a means of accessing information on the Internet that allows a user to xe2x80x9csurf the webxe2x80x9d and navigate the Internet resources intuitively, without technical knowledge. The Web dispenses with command-line utilities, which typically require a user to transmit sets of commands to communicate with an Internet server. Instead, the Web is made up of millions of interconnected web pages, or documents, which can be displayed on a computer monitor. Hosts running special servers provide the Web pages. Software that runs these Web servers is relatively simple and is available on a wide range of computer platforms including PC""s. Equally available is a form of client software, known as a Web browser, which is used to display Web pages as well as traditional non-Web files on the client system.
A network resource identifier such as a Uniform Resource Identifier (URI) is a compact string of characters for identifying an abstract or physical resource. URIs are the generic set of all names and addresses that refer to objects on the Internet. URIs that refer to objects accessed with existing protocols are known as Uniform Resource Locators (URLs). A URL is the address of a file accessible on the Internet. The URL contains the name of the protocol required to access the resource, a domain name, or IP address that identifies a specific computer on the Internet, and a hierarchical description of a file location on the computer. For example the URL xe2x80x9chttp://www.example.com/index.htmlxe2x80x9d, where xe2x80x9chttpxe2x80x9d is the scheme or protocol, xe2x80x9cwww.example.comxe2x80x9d is the Fully Qualified Domain Name (FQDN), and xe2x80x9cindex.htmlxe2x80x9d is the filename located on the server.
Because an Internet address is a relatively long string of numbers (e.g., 31.41.59.26) that is difficult to remember, Internet users rely on domain names, memorable and sometimes catchy words corresponding to these numbers, in order to use electronic mail (e-mail) and to connect to Internet sites on the Web. The Domain Name System (DNS) is a set of protocols and services on a network that allows users to utilize domain names when looking for other hosts (e.g., computers) on the network. The DNS is composed of a distributed database of names. The names in the DNS database establish a logical tree structure called the domain name space. Each node or domain in the domain name space is named and can contain subdomains. Domains and subdomains are grouped into zones to allow for distributed administration of the name space.
The DNS provides a mechanism so backup databases can be identified in case the first one becomes unavailable. DNS databases are updated automatically so that information on one name server does not remain out-of-date for long. A client of the DNS is called a resolver; resolvers are typically located in the application layer of the networking software of each TCP/IP capable machine. Users typically do not interact directly with the resolver. Resolvers query the DNS by directing queries at name servers, which contain parts of the distributed database that is accessed by using the DNS protocols to translate domain names into IP addresses needed for transmission of information across the network.
The Berkeley Internet Name Domain (BIND) implements an Internet name server for the UNIX operating system. The BIND consists of a name server and a resolver library. BIND is fully integrated into UNIX network programs for use in storing and retrieving host names and addresses by calling a routine from the resolver library called gethostbyname( ) which returns the IP address corresponding to a given Internet host name. Error return status from gethostbyname( ) is indicated by return of a NULL pointer.
At the heart of Netscape client products lies the Netscape Network Library (netlib). A necessity of any network based client browser application is to send and receive data over a connection. This is accomplished in netlib by making a call to NET_GetURL ( ). Among NET_GetURL( )""s arguments is a URL_Struct which contains the actual URL to be retrieved. When a call to NET_GetURL( ) is made, a connection is established between the client making the request and the host machine named in the URL, a request is sent in a particular format specified by the protocol (e.g., http, ftp), and data is received by the client, from the host machine.
In order to resolve host names, netlib uses a standard DNS lookup mechanism. NET_FindAddress( ) makes the gethostbyname( ) call to lookup the IP address for the specified host from a DNS database stored on a DNS server, and is called from NET_BeginConnect( ). If a numeric IP address is passed into NET_FindAddress( ), it is passed directly into the gethostbyname( ) call which will always return success when an IP address is passed in. NET_FindAddress( ) is actually called repeatedly until it returns success or failure. Upon success the host entity struct is filled out, and cached. Upon failure, the host entity struct is freed and the xe2x80x9cnot foundxe2x80x9d result is passed back up to the caller.
U.S. Pat. No. 6,023,724 issued on Feb. 8, 2000 by Bhatia, et al., entitled, xe2x80x9cApparatus and methods for use therein for an ISDN LAN modem that displays fault information to local hosts through interception of host DNS request messagesxe2x80x9d discloses a mechanism through which a fault-specific web page can be dynamically constructed and downloaded to the workstation for subsequent display through a web browser. The page, once rendered, provides a specific message pertinent to the failure. Though improvements are made to generate more specific error messages in response to generalized network failure messages, there is no provision for the redirection of network failure messages to perform other services.
U.S. Pat. No. 6,014,660 issued on Jan. 11, 2000 by Lim, et al., entitled, xe2x80x9cMethod and apparatus for client-sensitive name resolution using DNSxe2x80x9d discloses the steps of receiving a translation request by a DNS server. The DNS server examines the translation request to determine if a record exists within the DNS server. If such a record exists, the IP address is returned as the translation. If not, the requested translation is forwarded to a special DNS server, along with information that identifies the client system requesting translation. Though improvements are made to redirect unresolvable DNS translation requests to special servers for further attempts of translation processing, there is no provision for the redirection of such requests to perform services other than name translation or name resolution.
A domain name includes two parts: a host and a domain. Technically, the letters to the right of the xe2x80x9cdotxe2x80x9d (e.g., 8-1.com) are referred to as Top Level Domains (TLDs), while hosts, computers with assigned IP addresses that are listed in specific TLD registries are known as second-level domains (SLDs). For the domain name xe2x80x9c8-1.comxe2x80x9d, xe2x80x9c.comxe2x80x9d is the TLD, and xe2x80x9c8-1xe2x80x9d is the SLD. Domain name space is the ordered hierarchical set of all possible domain names either in use or to be used for locating an IP address on the Internet. TLDs are known as top-level domains because they comprise the highest-order name space available on the Internet. Second-level domains, as well as third-level domains (3LDs) such as xe2x80x9cmy.8-1.comxe2x80x9d, are subsidiary to TLDs in the hierarchy of the Internet""s DNS.
There are two types of top-level domains, generic and country code. Generic top-level domains (gTLDs) were created to allocate resources to the growing community of institutional networks, while country code top-level domains (ccTLDs) were created for use by each individual country, as deemed necessary. More than 240 national, or country-code TLDs (e.g., United States (.us), Japan (.jp), Germany (.de), etc.) are administered by their corresponding governments, or by private entities with the appropriate national government""s acquiescence. A small set of gTLDs does not carry any national identifier, but denote the intended function of that portion of the domain space. For example, xe2x80x9c.comxe2x80x9d was established for commercial networks, xe2x80x9c.orgxe2x80x9d for not-for-profit organizations, and xe2x80x9c.netxe2x80x9d for network gateways. The set of gTLDs was established early in the history of the DNS and has not been changed or augmented in recent years (COM, ORG, GOV, and MIL were created by January 1985, NET in July 1985, and INT was added in November 1988).
The DNS is operated by a Network Information Center (NIC) in each country to act as authority for administering the respective ccTLD zone file portion of the DNS database. The Internet Network Information Center (InterNIC) previously administered by the National Science Foundation (NSF), was formed to preside as authority over the gTLD zone files. In 1993, InterNIC was privatized and Network Solutions Inc. (NSI) was chosen to perform the registration and propagation of these key gTLDs, under a five-year cooperative agreement with the NSF.
Most recently, NSI and officials from the Department of Commerce""s National Telecommunications and Information Administration (NTIA) have agreed to a two-year extension of their Cooperative Agreement through Sep. 30, 2000. Included in the extension are provisions to transfer relevant U.S. Government authority over some domain name system functions to a new non-profit corporation. Incorporated and headquartered in California, the Internet Corporation for Assigned Names and Numbers (ICANN) is the non-profit corporation that was formed to take over responsibility for the IP address space allocation, protocol parameter assignment, domain name system management, and root server system management functions now performed under U.S. Government contract by Internet Assigned Numbers Authority (IANA) and other entities. The IANA, also headquartered in California, is the overall authority for day-to-day administration of the DNS. IANA staff carry out administrative responsibilities for the assignment of IP Addresses, Autonomous System Numbers, TLDs, and other unique parameters of the DNS and its protocols.
ICANN, NTIA, and NSI agreed to a migration to a shared registration system (SRS) in a phased approach beginning Mar. 31, 1999 with full implementation by Jun. 1, 1999. NSI has implemented a SRS to support multiple licensed, accredited registrars offering registration services. NSI and other domain name registrars function as retailers of domain name registration services through NSI""s SRS. NSI will also continue in its role as the registry or wholesaler of xe2x80x9c.comxe2x80x9d, xe2x80x9c.netxe2x80x9d, and xe2x80x9c.orgxe2x80x9d domain name registrations. To date, NSI has registered more than 7,000,000 domain names, or SLDs, in xe2x80x9c.comxe2x80x9d, xe2x80x9c.netxe2x80x9d, xe2x80x9c.orgxe2x80x9d, and xe2x80x9c.eduxe2x80x9d.
Domain name registration for a given NIC authority can be accessed by a TCP/IP application called WHOIS, which queries a NIC database to find the name of network and system administrators, system and network points-of-contact, and other individuals who are registered in appropriate databases. Domain names are identifiers used for both accessing a resource and retrieving contact information of the registrant or domain name holder of that resource. The availability of a domain name from a NIC authority for a given TLD is usually determined by submitting a WHOIS request. If there are no matches in the database then the domain name may be available for registration. Regional WHOIS registries are maintained by NSI and ARIN (American Registry for Internet Numbers) located in the U.S., APNIC (Asia-Pacific Network Information Center) located in Australia, and RIPE NCC located in the Netherlands. Resource location may be determined by resolving a query in the DNS whereas domain name availability may be determined by using a WHOIS service to query an appropriate NIC database.
WIPO Patent Application WO9909726A1 published on Feb. 25, 1999 by Broadhurst, entitled, xe2x80x9cMethod of determining unavailability of Internet domain namesxe2x80x9d discloses an improved query server that overcomes the shortcomings of existing domain name searching techniques by performing a multitude of searches simultaneously, transparent to the user. Specifically, the improved query server searches for existing domain name records in various domains and then displays the results in a formatted manner, thus eliminating the need for a user to perform individual searches. However, such improvements do not consider the integration of services other than that of registration.
URLs are used in media and written in documents or typed within e-mail, and data files, etc. as a means to make reference to accessible online content that helps express the context of the ideas one wishes to communicate. URLs are generally written in an abbreviated manner as partial URLs or domain names (e.g., xe2x80x9chttp://www.example.comxe2x80x9d is the URL, xe2x80x9cwww.example.comxe2x80x9d is the FQDN, and xe2x80x9cexample.comxe2x80x9d is the domain name). During the early stages of commercialization on the Internet, businesses displayed the full URL when advertising a commercial or display ad as a means to locate the resources of the business on the Internet. Improvements have been made to recognize partial URLs when entered in the location field of a web browser or network accessible device for automatically appending protocol information so a full URL request can be made. By submitting a domain name or FQDN in the location field, the browser modifies the request by adjusting the partial URL and adding xe2x80x9chttp://xe2x80x9d in front of the domain name or FQDN in order to construct a valid URL. As a result of this convenience, companies have modified their advertising and distribution of URLs through print, film, radio, television and other media as xe2x80x9cexample.comxe2x80x9d or xe2x80x9cwww.example.comxe2x80x9d instead of the URL xe2x80x9chttp://www.example.comxe2x80x9d. Though a helpful mnemonic for consumers to more readily identify and access the location and origin of goods and services on a public network such as the Internet, the mnemonic is only applicable when using a command line of a device or location field of a web browser program as a means to access the advertised web site.
The main use of a web browser location field is for resolving URLs to locate and access resources. Entering a URL in the location field of a web browser serves as a means to access a network resource corresponding to that URL. Because the location field is essential for accessing resources, the design of such location fields have rivaled much competition and innovation between existing web browser products from companies such as Netscape and Microsoft. Improvements to better track and organize sites of URLs that users have visited such as Bookmark folders, URL history, and the personal toolbar are all examples of functionality designed to help users navigate. Other improvements include spell checking and an autocomplete feature from the URL history as text is entered into the location field.
A more recent feature called Smart Browsing is integrated into Netscape Navigator that uses Internet Keywords so users can streamline the use of URLs and get fast access to web sites using the browser""s location field. Any single or multiword strings typed into the browser""s location field that does not include a xe2x80x9c.xe2x80x9d are sent via HTTP to a server at xe2x80x9cnetscape.comxe2x80x9d. The keyword server pulls the string and compares it to several separate lists of keyword-URL pairs. If the keyword system finds a match, it redirects the user""s browser to the URL of the keyword-URL pair. Failing a match against the lists, the user""s browser is redirected to a Netscape Search page with the typed string as the search query. The xe2x80x9c.xe2x80x9d versus xe2x80x9c xe2x80x9d is a key factor in determining what services are used. Depending on context, the detection of only a xe2x80x9c.xe2x80x9d delimiter implies a domain name used for name resolution and resource location services whereas the detection of only a xe2x80x9c xe2x80x9d delimiter implies a search request used for directory services and the like.
The autosearch feature of Microsoft Internet Explorer (MSIE) is another example of an improvement to the location field of a web browser. The details of the autosearch feature is disclosed in U.S. Pat. No. 6,009,459 issued on Dec. 28, 1999 by Belfiore, et al., entitled, xe2x80x9cIntelligent automatic searching for resources in a distributed environment.xe2x80x9d The ""459 patent specifies a mechanism for a computer system to automatically and intelligently determine what a user intended when the user entered text within the location field of a web browser. Often users improperly enter URLs or enter search terms in a user interface element that requires URLs. If the user enters text that is not a URL, the system may first try to construct a valid URL from the user-entered text. If a valid URL cannot be constructed, the browser then automatically formats a search engine query using the user-entered text and forwards the query to an Internet search engine. In an alternative embodiment of the ""459 patent, the passing of search terms to the search engine is not triggered by an improper URL being entered but rather is triggered by the failure to resolve the URL to a web site within a certain time frame due to a heavily used page that cannot be readily accessed.
In addition, the ""459 patent specifies a template registry that categorizes the specific suitability of a plurality of search engines to locate web sites related to a determined meaning of the specified text. The template is an entry in the registry that includes replaceable characters that may be replaced with the processed text. An example template registry entry that causes the Yahoo! search engine to be called is xe2x80x9chttp://msie.yahoo.com/autosearch?%sxe2x80x9d. The %s is filled in with information regarding the search terms.
Each day hundreds of thousands of users are connecting to the Internet for the first time. These first time users are already familiar with the concept of a domain name or web address such as xe2x80x9cexample.comxe2x80x9d or a URL such as xe2x80x9chttp:j/www.example.comlindex.htmlxe2x80x9d due to their contact with the myriad of advertisements in print, radio, and television. When a resource such as a web page can not be accessed after entering a web address or URL in the command line of a device or location field of a web browser, novice users of the Internet may assume that the resource does not exist and that the domain name of such a resource is available to the user for registration. This is a common mistake. The domain name may be registered but has no corresponding web site. Availability of the domain name remains unclear until a separate domain name availability request such as a WHOIS request is performed.
In effect, a domain name can be considered an object having the properties of resolvability and availability, wherein methods of resolvability are applied to resource identification and location services and methods of availability are applied to domain name registration services. To date, resource location and domain name availability have remained separate mutually exclusive services. Additional advantages can be obtained by integrating these separate services into a unified service. Accordingly, in light of the above, there is a strong need in the art for a system and method for integrating resource location and domain name registration services.
The present invention enables the seamless integration between name resolution and registration services. The invention allows for the extended utility of the command line of a device or location field of a client browser for determining domain name availability to streamline the registration process. The present invention helps novice Internet users to more readily understand the difference between resource location and domain name availability. The invention may use zone file caching and advanced domain name translation lookups to reduce extra bandwidth required by relying on client name resolution services or WHOIS lookups only. The present invention enables various methods of registrar selection by a user or at random each time a browser redirects to registration services, assuring that business is distributed to other registrars. The invention may use the MSIE autosearch feature for the purposes of registration in addition to the purpose of searching in lieu of making browser modifications resulting in the savings of distribution costs for software updates.
In general, in accordance with the present invention a method for requesting a network resource from an identifier having a domain name includes determining that the network resource can not be located, and processing at least a portion of the identifier with one of a search request and registration request.
In another aspect of the present invention a method for requesting a network resource from an identifier having a valid domain name includes the steps of determining whether the network resource can be located, requesting the network resource from the identifier in response to determining that the network resource can be located, and determining whether the valid domain name is available for registration in response to determining that the network resource can not be located.
In accordance with yet additional aspects of the present invention, an apparatus which implements substantially the same functionality in substantially the same manner as the methods described above is provided.
In accordance with other additional aspects of the present invention, a computer program product may be used to perform substantially the same methods as those described above are provided.